DEV-1890 whisper words - #19
Merged
Merged
Conversation
…sults The transcription form only had include_ts, so the v2 parameters added alongside whisper-ct2 were unreachable from the tester, and a structured result was just an opaque download link. Form (all four /audio/transcriptions endpoints, via a shared builder): - ts_level, diarize, lang, and include_metadata (URL sources only -- the API returns null metadata for an uploaded file) - capability-gated rather than hardcoded: ts_level appears only for models publishing info.limits.timestamp_levels and takes its options from that list, diarize only for info.features.supports_diarization. Two new registry hooks carry this: optionsFromModel and visibleFromModel. - ts_level is clamped to the selected model's list, so switching models can't leave a value the API rejects - visibleWhen now accepts an array of conditions (OR) and compares on the string form, so it works for booleans: ts_level shows for include_ts OR diarize. Hidden fields stay out of the payload, price calc included. Results: the shape is the model's choice, reported as `structured` on the job status. The transcript strip shows JSON/TXT, language, delivered ts_level and whether speakers came back; expanding renders plain text as text, and a structured result as segments with ms times, coloured speakers, avg_logprob and per-word spans. Source metadata renders as a key/value block, generically, so new fields need no code change. Result files are fetched through a new /api/result -- result URLs are presigned and unreachable from the browser -- and it names the host on a connection failure, since an internal storage hostname that only resolves inside the API's network is otherwise a bare "fetch failed". Layout: the toggles move from the right column to the centre one. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
deAPI ignores per_page and caps limit at 50 (default page size 25), so /api/models was silently returning only the first 25 models. Loop over ?limit=50&page=N until meta.last_page and return the merged list, with a 20-page safety cap. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The header refresh button only reloaded /models. It now also calls refreshBalance(), spins while either request is in flight, and the tooltip reflects both actions. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
szwagros
approved these changes
Aug 7, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Brief description of changes.
Type of Change
Testing
How was this tested?
Checklist